package com.exam.service;

import java.util.List;
import java.util.Map;

import com.exam.exception.ScheduleIsExistException;
import com.exam.pojo.Paging;
import com.exam.pojo.Schedule;

/**
 * @author 郭荣锋
 * 考试安排服务层接口
 */
public interface ScheduleService {

	/**
	 * 添加考试安排
	 * @param subjectName 学科名称
	 * @param classesName 班级名称
	 * @param majorName 专业名称
	 * @param dates 考试时间
	 * @throws ScheduleIsExistException 考试安排已存在异常
	 */
	void addSchedule(String subjectName, String classesName, String majorName, String dates) throws ScheduleIsExistException;
		
	/**
	 * 考试安排表初始化
	 */
	void scheduleInit();
	
	/**
	 * 根据不同条件获取考试安排
	 * @param map 必填 page pageSize 可选
	 * @return 存着考试安排列表的Paging对象
	 */
	Paging<Schedule> getSchedule(Map<String, Object> map);
	
	/**
	 * 删除考试安排
	 * @param scheduleId 考试安排编号
	 */
	void deleteSchedule(Integer scheduleId);
	
	/**
	 * 通过考试安排编号获取考试安排对象
	 * @param scheduleId 考试安排编号
	 * @return 考试安排对象
	 */
	Schedule getScheduleById(Integer scheduleId);

	/**
	 * 通过班级ID来获得某个班级所有的考试
	 * @param classesId 班级ID
	 * @return 考试安排对象列表
	 * */
	List<Schedule> getScheduleByClassesId(Integer classesId);
	
}
